package com.awaken.content.models.dto;

// 导入Lombok注解，自动生成getter、setter等方法
import lombok.Data;
// 导入精确的十进制数类型，用于价格计算
import java.math.BigDecimal;
// 导入时间类
import java.time.LocalDateTime;

/**
 * 订单DTO类 - Data Transfer Object（数据传输对象）
 * 用于在服务之间传递订单数据，包含用户名、商品名等关联信息
 * 这样前端就不需要再次查询用户和商品信息了
 */
@Data  // Lombok注解：自动生成getter、setter、toString等方法
public class OrderDTO {
    // 订单ID
    private Long id;
    
    // 买家用户ID
    private Long userId;
    
    // 买家用户名（通过关联查询获得，方便前端显示）
    private String userName;
    
    // 商品ID
    private Long productId;
    
    // 商品名称（通过关联查询获得，方便前端显示）
    private String productName;
    
    // 购买数量
    private Integer amount;
    
    // 订单总价
    private BigDecimal totalPrice;
    
    // 订单状态数字：1=待付款，2=已付款待发货，3=已发货待收货，4=已完成，5=已取消
    private Integer status;
    
    // 订单状态文字描述（通过转换获得，方便前端显示）
    private String statusText;
    
    // 订单创建时间
    private LocalDateTime createTime;
} 